Skip to content

Conversation

@adwinwhite
Copy link
Contributor

@adwinwhite adwinwhite commented Nov 14, 2025

First step for param_env normalization future compat warning. zulip thread

I didn't put the check directly in param_env query because normalize_param_env_or_error has some adjustments on the predicates: elaboration and outlive predicates manipulation. I'd have to replicate these in param_env to compare normalized predicates properly.
The downside of putting the check inside normalize_param_env_or_error is that it's used in more than param_env query. It's also used in compare_impl_item and several other places. I'm not sure if this is desired.

I didn't bless tests since the hard error will be changed to lint later.
Blessed tests to demonstrate the changes.

And there's one test about const generics I don't know how to fix.
Canonicalizer for the next solver will replace ParamConst with PlaceholderConst, but it still uses the same try_evaluate_const internally and process_obligation doesn't like PlaceholderConst.

r? @lcnr

@rustbot
Copy link
Collaborator

rustbot commented Nov 14, 2025

Some changes occurred to the core trait solver

cc @rust-lang/initiative-trait-system-refactor

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Nov 14, 2025
@rust-log-analyzer

This comment has been minimized.

@adwinwhite adwinwhite force-pushed the env_normalization_fcw branch from 5cd4303 to 4408f14 Compare November 14, 2025 12:30
@rustbot
Copy link
Collaborator

rustbot commented Nov 14, 2025

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@rust-log-analyzer

This comment has been minimized.

Comment on lines 220 to 221
// FIXME: `generic_const_exprs` causes query cycle problem. Same as the old solver.
if !ct.has_aliases() || infcx.tcx.features().generic_const_exprs() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, disable the lint if generic_const_exprs is enabled instead

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah! That's better. generic_const_exprs is not compatible with next solver anyway.

orig_pred,
) {
Ok(pred_by_next) => {
if pred_by_next == *pred_by_old {
Copy link
Contributor

@lcnr lcnr Nov 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to fully resolve the predicates before comparing them. This is causing the error in std. Also just generally move this further to the end of this function?

I think doing it here isn't ideally, but should be good enough for a crater run

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

std compiles fine after resolving predicates normalized by the old solver.
It turns out that stderr changes of some tests are noise. They're restored to the original state.

@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
---- [ui] tests/ui/const-generics/generic_const_exprs/feature-attribute-missing-in-dependent-crate-ice.rs stdout ----

error: Error: expected failure status (Some(1)) but received status Some(101).
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/const-generics/generic_const_exprs/feature-attribute-missing-in-dependent-crate-ice.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/const-generics/generic_const_exprs/feature-attribute-missing-in-dependent-crate-ice" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/const-generics/generic_const_exprs/feature-attribute-missing-in-dependent-crate-ice/auxiliary"
stdout: none
--- stderr -------------------------------
##[error]error: internal compiler error: compiler/rustc_trait_selection/src/traits/fulfill.rs:539:29: placeholder const !BoundConst { var: 0 } in old solver


thread 'rustc' (51832) panicked at compiler/rustc_trait_selection/src/traits/fulfill.rs:539:29:
Box<dyn Any>
stack backtrace:
   0: std::panicking::begin_panic::<rustc_errors::ExplicitBug>
   1: <rustc_errors::diagnostic::BugAbort as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
   2: rustc_middle::util::bug::opt_span_bug_fmt::<rustc_span::span_encoding::Span>::{closure#0}
   3: rustc_middle::ty::context::tls::with_opt::<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span::span_encoding::Span>::{closure#0}, !>::{closure#0}
   4: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_opt<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
   5: rustc_middle::util::bug::bug_fmt
   6: <rustc_trait_selection::traits::fulfill::FulfillProcessor as rustc_data_structures::obligation_forest::ObligationProcessor>::process_obligation
   7: <rustc_data_structures::obligation_forest::ObligationForest<rustc_trait_selection::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection::traits::fulfill::FulfillProcessor>
   8: <rustc_trait_selection::traits::fulfill::FulfillmentContext<rustc_infer::traits::engine::ScrubbedTraitError> as rustc_infer::traits::engine::TraitEngine<rustc_infer::traits::engine::ScrubbedTraitError>>::try_evaluate_obligations
   9: <rustc_trait_selection::traits::fulfill::FulfillmentContext<rustc_infer::traits::engine::ScrubbedTraitError> as rustc_infer::traits::engine::TraitEngine<rustc_infer::traits::engine::ScrubbedTraitError>>::evaluate_obligations_error_on_ambiguity
  10: rustc_traits::codegen::codegen_select_candidate
      [... omitted 3 frames ...]
  11: rustc_ty_utils::instance::resolve_instance_raw
      [... omitted 3 frames ...]
  12: <rustc_middle::ty::instance::Instance>::try_resolve
  13: <rustc_middle::ty::context::TyCtxt>::const_eval_resolve
  14: <rustc_middle::mir::consts::Const>::eval
  15: <rustc_const_eval::interpret::eval_context::InterpCx<rustc_const_eval::const_eval::machine::CompileTimeMachine>>::push_stack_frame_raw
  16: rustc_const_eval::const_eval::eval_queries::eval_to_allocation_raw_provider
      [... omitted 3 frames ...]
  17: rustc_const_eval::const_eval::valtrees::eval_to_valtree
  18: <rustc_const_eval::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_middle::ty::PseudoCanonicalInput<rustc_middle::mir::interpret::GlobalId>)>>::call_once
      [... omitted 3 frames ...]
  19: <rustc_middle::ty::context::TyCtxt>::const_eval_global_id_for_typeck
  20: <rustc_middle::ty::context::TyCtxt>::const_eval_resolve_for_typeck
  21: rustc_trait_selection::traits::try_evaluate_const
  22: <rustc_trait_selection::solve::delegate::SolverDelegate as rustc_next_trait_solver::delegate::SolverDelegate>::evaluate_const
  23: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::compute_normalizes_to_goal
  24: <rustc_infer::infer::InferCtxt as rustc_type_ir::infer_ctxt::InferCtxtLike>::enter_forall::<rustc_type_ir::predicate_kind::PredicateKind<rustc_middle::ty::context::TyCtxt>, core::result::Result<rustc_type_ir::canonical::Canonical<rustc_middle::ty::context::TyCtxt, rustc_type_ir::solve::Response<rustc_middle::ty::context::TyCtxt>>, rustc_type_ir::solve::NoSolution>, <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::enter_forall<rustc_type_ir::predicate_kind::PredicateKind<rustc_middle::ty::context::TyCtxt>, core::result::Result<rustc_type_ir::canonical::Canonical<rustc_middle::ty::context::TyCtxt, rustc_type_ir::solve::Response<rustc_middle::ty::context::TyCtxt>>, rustc_type_ir::solve::NoSolution>, <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::compute_goal::{closure#0}>::{closure#0}>
  25: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::enter_canonical::<core::result::Result<rustc_type_ir::canonical::Canonical<rustc_middle::ty::context::TyCtxt, rustc_type_ir::solve::Response<rustc_middle::ty::context::TyCtxt>>, rustc_type_ir::solve::NoSolution>, <rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate> as rustc_type_ir::search_graph::Delegate>::compute_goal::{closure#0}::{closure#0}>
  26: <rustc_type_ir::search_graph::SearchGraph<rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate>, rustc_middle::ty::context::TyCtxt>>::evaluate_goal_in_task
  27: <rustc_middle::ty::context::TyCtxt as rustc_type_ir::search_graph::Cx>::with_cached_task::<rustc_type_ir::search_graph::EvaluationResult<rustc_middle::ty::context::TyCtxt>, <rustc_type_ir::search_graph::SearchGraph<rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate>, rustc_middle::ty::context::TyCtxt>>::evaluate_goal::{closure#0}::{closure#2}>
  28: <rustc_type_ir::search_graph::SearchGraph<rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate>, rustc_middle::ty::context::TyCtxt>>::evaluate_goal
  29: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::evaluate_goal_raw
  30: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::try_evaluate_added_goals
  31: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::compute_alias_relate_goal
  32: <rustc_infer::infer::InferCtxt as rustc_type_ir::infer_ctxt::InferCtxtLike>::enter_forall::<rustc_type_ir::predicate_kind::PredicateKind<rustc_middle::ty::context::TyCtxt>, core::result::Result<rustc_type_ir::canonical::Canonical<rustc_middle::ty::context::TyCtxt, rustc_type_ir::solve::Response<rustc_middle::ty::context::TyCtxt>>, rustc_type_ir::solve::NoSolution>, <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::enter_forall<rustc_type_ir::predicate_kind::PredicateKind<rustc_middle::ty::context::TyCtxt>, core::result::Result<rustc_type_ir::canonical::Canonical<rustc_middle::ty::context::TyCtxt, rustc_type_ir::solve::Response<rustc_middle::ty::context::TyCtxt>>, rustc_type_ir::solve::NoSolution>, <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::compute_goal::{closure#0}>::{closure#0}>
  33: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::enter_canonical::<core::result::Result<rustc_type_ir::canonical::Canonical<rustc_middle::ty::context::TyCtxt, rustc_type_ir::solve::Response<rustc_middle::ty::context::TyCtxt>>, rustc_type_ir::solve::NoSolution>, <rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate> as rustc_type_ir::search_graph::Delegate>::compute_goal::{closure#0}::{closure#0}>
  34: <rustc_type_ir::search_graph::SearchGraph<rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate>, rustc_middle::ty::context::TyCtxt>>::evaluate_goal_in_task
  35: <rustc_middle::ty::context::TyCtxt as rustc_type_ir::search_graph::Cx>::with_cached_task::<rustc_type_ir::search_graph::EvaluationResult<rustc_middle::ty::context::TyCtxt>, <rustc_type_ir::search_graph::SearchGraph<rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate>, rustc_middle::ty::context::TyCtxt>>::evaluate_goal::{closure#0}::{closure#2}>
  36: <rustc_type_ir::search_graph::SearchGraph<rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate>, rustc_middle::ty::context::TyCtxt>>::evaluate_goal
  37: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::evaluate_goal_raw
  38: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::enter_root::<core::result::Result<rustc_next_trait_solver::solve::GoalEvaluation<rustc_middle::ty::context::TyCtxt>, rustc_type_ir::solve::NoSolution>, <rustc_trait_selection::solve::delegate::SolverDelegate as rustc_next_trait_solver::solve::eval_ctxt::SolverDelegateEvalExt>::evaluate_root_goal::{closure#0}::{closure#0}>
  39: <rustc_trait_selection::solve::delegate::SolverDelegate as rustc_next_trait_solver::solve::eval_ctxt::SolverDelegateEvalExt>::evaluate_root_goal
  40: <rustc_trait_selection::solve::fulfill::FulfillmentCtxt<rustc_infer::traits::engine::ScrubbedTraitError> as rustc_infer::traits::engine::TraitEngine<rustc_infer::traits::engine::ScrubbedTraitError>>::try_evaluate_obligations
  41: <rustc_trait_selection::solve::normalize::NormalizationFolder<rustc_infer::traits::engine::ScrubbedTraitError>>::normalize_alias_term
  42: <rustc_trait_selection::solve::normalize::NormalizationFolder<rustc_infer::traits::engine::ScrubbedTraitError> as rustc_type_ir::fold::FallibleTypeFolder<rustc_middle::ty::context::TyCtxt>>::try_fold_const
  43: <rustc_type_ir::predicate_kind::PredicateKind<rustc_middle::ty::context::TyCtxt> as rustc_type_ir::fold::TypeFoldable<rustc_middle::ty::context::TyCtxt>>::try_fold_with::<rustc_trait_selection::solve::normalize::NormalizationFolder<rustc_infer::traits::engine::ScrubbedTraitError>>
  44: <rustc_type_ir::binder::Binder<rustc_middle::ty::context::TyCtxt, rustc_type_ir::predicate_kind::PredicateKind<rustc_middle::ty::context::TyCtxt>>>::try_map_bound::<<rustc_type_ir::binder::Binder<rustc_middle::ty::context::TyCtxt, rustc_type_ir::predicate_kind::PredicateKind<rustc_middle::ty::context::TyCtxt>> as rustc_type_ir::fold::TypeSuperFoldable<rustc_middle::ty::context::TyCtxt>>::try_super_fold_with<rustc_trait_selection::solve::normalize::NormalizationFolder<rustc_infer::traits::engine::ScrubbedTraitError>>::{closure#0}, rustc_type_ir::predicate_kind::PredicateKind<rustc_middle::ty::context::TyCtxt>, alloc::vec::Vec<rustc_infer::traits::engine::ScrubbedTraitError>>
  45: <rustc_trait_selection::solve::normalize::NormalizationFolder<rustc_infer::traits::engine::ScrubbedTraitError> as rustc_type_ir::fold::FallibleTypeFolder<rustc_middle::ty::context::TyCtxt>>::try_fold_predicate
  46: rustc_trait_selection::solve::normalize::deeply_normalize::<rustc_middle::ty::predicate::Clause, rustc_infer::traits::engine::ScrubbedTraitError>
  47: <core::iter::adapters::cloned::Cloned<core::slice::iter::Iter<rustc_middle::ty::predicate::Clause>> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::adapters::map::map_fold<rustc_middle::ty::predicate::Clause, core::option::Option<rustc_middle::ty::predicate::Clause>, (), rustc_trait_selection::traits::do_normalize_predicates::{closure#0}, core::iter::traits::iterator::Iterator::for_each::call<core::option::Option<rustc_middle::ty::predicate::Clause>, <alloc::vec::Vec<core::option::Option<rustc_middle::ty::predicate::Clause>>>::extend_trusted<core::iter::adapters::map::Map<core::iter::adapters::cloned::Cloned<core::slice::iter::Iter<rustc_middle::ty::predicate::Clause>>, rustc_trait_selection::traits::do_normalize_predicates::{closure#0}>>::{closure#0}>::{closure#0}>::{closure#0}>
  48: <core::iter::adapters::map::Map<core::iter::adapters::cloned::Cloned<core::slice::iter::Iter<rustc_middle::ty::predicate::Clause>>, rustc_trait_selection::traits::do_normalize_predicates::{closure#0}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<core::option::Option<rustc_middle::ty::predicate::Clause>, <alloc::vec::Vec<core::option::Option<rustc_middle::ty::predicate::Clause>>>::extend_trusted<core::iter::adapters::map::Map<core::iter::adapters::cloned::Cloned<core::slice::iter::Iter<rustc_middle::ty::predicate::Clause>>, rustc_trait_selection::traits::do_normalize_predicates::{closure#0}>>::{closure#0}>::{closure#0}>
  49: <alloc::vec::Vec<core::option::Option<rustc_middle::ty::predicate::Clause>> as alloc::vec::spec_from_iter::SpecFromIter<core::option::Option<rustc_middle::ty::predicate::Clause>, core::iter::adapters::map::Map<core::iter::adapters::cloned::Cloned<core::slice::iter::Iter<rustc_middle::ty::predicate::Clause>>, rustc_trait_selection::traits::do_normalize_predicates::{closure#0}>>>::from_iter
  50: rustc_trait_selection::traits::do_normalize_predicates
  51: rustc_trait_selection::traits::normalize_param_env_or_error
  52: rustc_hir_analysis::check::compare_impl_item::compare_method_predicate_entailment
  53: rustc_hir_analysis::check::compare_impl_item::compare_impl_item
      [... omitted 3 frames ...]
  54: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
  55: rustc_hir_analysis::check::check::check_impl_items_against_trait
  56: rustc_hir_analysis::check::check::check_item_type
  57: rustc_hir_analysis::check::wfcheck::check_well_formed
      [... omitted 3 frames ...]
  58: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
  59: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#0}>::{closure#0}>
  60: rustc_hir_analysis::check::wfcheck::check_type_wf
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: please make sure that you have updated to the latest nightly

note: rustc 1.93.0-nightly (1261b37b1 2025-11-16) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C codegen-units=1 -Z ui-testing -Z deduplicate-diagnostics=no -Z write-long-types-to-disk=no -C strip=debuginfo -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [codegen_select_candidate] computing candidate for `<Wrapper<!BoundConst { var: 0 }> as feature_attribute_missing_in_dependent_crate_ice_aux::FromSlice>`
#1 [resolve_instance_raw] resolving instance `<Wrapper<!BoundConst { var: 0 }> as feature_attribute_missing_in_dependent_crate_ice_aux::FromSlice>::SIZE`
#2 [eval_to_allocation_raw] const-evaluating + checking `feature_attribute_missing_in_dependent_crate_ice_aux::FromSlice::validate_slice::{constant#0}`
#3 [eval_to_valtree] evaluating type-level constant
#4 [compare_impl_item] checking assoc item `<impl at /checkout/tests/ui/const-generics/generic_const_exprs/feature-attribute-missing-in-dependent-crate-ice.rs:12:1: 12:51>::validate_slice` is compatible with trait definition
#5 [check_well_formed] checking that `<impl at /checkout/tests/ui/const-generics/generic_const_exprs/feature-attribute-missing-in-dependent-crate-ice.rs:12:1: 12:51>` is well-formed
#6 [check_type_wf] checking that types are well-formed
#7 [analysis] running analysis passes on crate `feature_attribute_missing_in_dependent_crate_ice`
end of query stack
error: aborting due to 1 previous error
------------------------------------------

---- [ui] tests/ui/const-generics/generic_const_exprs/feature-attribute-missing-in-dependent-crate-ice.rs stdout end ----
---
4 LL |         let a = Foo;
5    |                 ^^^ not found in this scope
6 
- error: aborting due to 1 previous error
+ error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }, next=Some(
+            Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: [], def_id: DefId(0:14 ~ layout_error[b009]::F::{opaque#0}), .. }))), bound_vars: [] },
+        )
+   --> $DIR/layout-error.rs:22:1
+    |
+ LL | / fn foo()
+ LL | | where
+ LL | |     F:,
+    | |_______^
+ 
+ error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }, next=Some(
+            Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: [], def_id: DefId(0:14 ~ layout_error[b009]::F::{opaque#0}), .. }))), bound_vars: [] },
+        )
+   --> $DIR/layout-error.rs:30:24
+    |
+ LL |     Task::spawn(&POOL, || cb());
+    |                        ^^
+ 
+ error: aborting due to 3 previous errors
8 
9 For more information about this error, try `rustc --explain E0425`.
10 

Note: some mismatched output was normalized before being compared
-   --> /checkout/tests/ui/coroutine/layout-error.rs:22:1
-   --> /checkout/tests/ui/coroutine/layout-error.rs:30:24
+ error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }, next=Some(
+            Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: [], def_id: DefId(0:14 ~ layout_error[b009]::F::{opaque#0}), .. }))), bound_vars: [] },
+        )
+   --> $DIR/layout-error.rs:22:1
+    |
+ LL | / fn foo()
+ LL | | where
+ LL | |     F:,
+    | |_______^
+ 
+ error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }, next=Some(
+            Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: [], def_id: DefId(0:14 ~ layout_error[b009]::F::{opaque#0}), .. }))), bound_vars: [] },
+        )
+   --> $DIR/layout-error.rs:30:24
+    |
+ LL |     Task::spawn(&POOL, || cb());
+    |                        ^^
+ 
+ error: aborting due to 3 previous errors


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args coroutine/layout-error.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/coroutine/layout-error.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/coroutine/layout-error" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2018"
stdout: none
--- stderr -------------------------------
error[E0425]: cannot find value `Foo` in this scope
##[error]  --> /checkout/tests/ui/coroutine/layout-error.rs:27:17
   |
LL |         let a = Foo; //~ ERROR cannot find value `Foo` in this scope
   |                 ^^^ not found in this scope

error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }, next=Some(
           Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: [], def_id: DefId(0:14 ~ layout_error[b009]::F::{opaque#0}), .. }))), bound_vars: [] },
       )
  --> /checkout/tests/ui/coroutine/layout-error.rs:22:1
   |
LL | / fn foo()
LL | | where
LL | |     F:,
   | |_______^

error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Free, AliasTy { args: [], def_id: DefId(0:13 ~ layout_error[b009]::F), .. }))), bound_vars: [] }, next=Some(
           Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: [], def_id: DefId(0:14 ~ layout_error[b009]::F::{opaque#0}), .. }))), bound_vars: [] },
       )
  --> /checkout/tests/ui/coroutine/layout-error.rs:30:24
   |
LL |     Task::spawn(&POOL, || cb());
   |                        ^^

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0425`.
------------------------------------------

---- [ui] tests/ui/coroutine/layout-error.rs stdout end ----
---- [ui] tests/ui/higher-ranked/trait-bounds/issue-100689.rs stdout ----

error: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/higher-ranked/trait-bounds/issue-100689.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/higher-ranked/trait-bounds/issue-100689" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
note: no errors encountered even though delayed bugs were created

note: those delayed bugs will now be shown as internal compiler errors

##[error]error: internal compiler error: failed region resolution while normalizing ParamEnv { caller_bounds: [Binder { value: ProjectionPredicate(AliasTerm { args: [impl for<'b> FnMut(&'b Foo<'a>)/#1, (Alias(Projection, AliasTy { args: [(), 'a/#0, '^0.Named(DefId(0:12 ~ issue_100689[0a86]::Bar::uwu::'b))], def_id: DefId(0:8 ~ issue_100689[0a86]::Bar::FooRef), .. }),)], def_id: DefId(2:4162 ~ core[5af9]::ops::function::FnOnce::Output), .. }, Term::Ty(())), bound_vars: [Region(BrNamed(DefId(0:12 ~ issue_100689[0a86]::Bar::uwu::'b)))] }, Binder { value: TraitPredicate(<impl for<'b> FnMut(&'b Foo<'a>) as std::ops::FnMut<(<() as Bar<'a>>::FooRef<'b>,)>>, polarity:Positive), bound_vars: [Region(BrNamed(DefId(0:12 ~ issue_100689[0a86]::Bar::uwu::'b)))] }, Binder { value: TraitPredicate(<impl for<'b> FnMut(&'b Foo<'a>) as std::ops::FnOnce<(<() as Bar<'a>>::FooRef<'b>,)>>, polarity:Positive), bound_vars: [Region(BrNamed(DefId(0:12 ~ issue_100689[0a86]::Bar::uwu::'b)))] }, Binder { value: TraitPredicate(<impl for<'b> FnMut(&'b Foo<'a>) as std::marker::MetaSized>, polarity:Positive), bound_vars: [Region(BrNamed(DefId(0:12 ~ issue_100689[0a86]::Bar::uwu::'b)))] }, Binder { value: TraitPredicate(<impl for<'b> FnMut(&'b Foo<'a>) as std::marker::Sized>, polarity:Positive), bound_vars: [] }] }: [ConcreteFailure(RelateRegionParamBound(/checkout/tests/ui/higher-ranked/trait-bounds/issue-100689.rs:21:5: 24:6 (#0), None), '!1_0.Named(DefId(0:12 ~ issue_100689[0a86]::Bar::uwu::'b)), 'a/#0), ConcreteFailure(RelateRegionParamBound(/checkout/tests/ui/higher-ranked/trait-bounds/issue-100689.rs:21:5: 24:6 (#0), None), '!2_0.Named(DefId(0:12 ~ issue_100689[0a86]::Bar::uwu::'b)), 'a/#0), ConcreteFailure(RelateRegionParamBound(/checkout/tests/ui/higher-ranked/trait-bounds/issue-100689.rs:21:5: 24:6 (#0), None), '!3_0.Named(DefId(0:12 ~ issue_100689[0a86]::Bar::uwu::'b)), 'a/#0)]
  --> /checkout/tests/ui/higher-ranked/trait-bounds/issue-100689.rs:21:5
   |
LL | /     fn uwu(
LL | |         foo: Foo<'a>,
LL | |         mut f: impl for<'b> FnMut(&'b Foo<'a>), //relevant part
LL | |     ) {
   | |_____^
   |
note: delayed at compiler/rustc_trait_selection/src/traits/mod.rs:345:23
         0: std::backtrace::Backtrace::create
         1: <rustc_errors::DiagCtxtInner>::emit_diagnostic
         2: <rustc_errors::DiagCtxtHandle>::emit_diagnostic
         3: <rustc_errors::diagnostic::Diag>::emit_producing_error_guaranteed
         4: rustc_trait_selection::traits::do_normalize_predicates
         5: rustc_trait_selection::traits::normalize_param_env_or_error
         6: rustc_hir_analysis::check::compare_impl_item::compare_method_predicate_entailment
         7: rustc_hir_analysis::check::compare_impl_item::compare_impl_item
         8: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::compare_impl_item::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
         9: <rustc_query_impl::query_impl::compare_impl_item::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
        10: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, true, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
        11: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
        12: rustc_query_impl::query_impl::compare_impl_item::get_query_non_incr::__rust_end_short_backtrace
        13: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
        14: rustc_hir_analysis::check::check::check_impl_items_against_trait
        15: rustc_hir_analysis::check::check::check_item_type
        16: rustc_hir_analysis::check::wfcheck::check_well_formed
        17: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
        18: <rustc_query_impl::query_impl::check_well_formed::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
        19: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, true, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
        20: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
        21: rustc_query_impl::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
        22: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
        23: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#0}>::{closure#0}>
        24: rustc_hir_analysis::check::wfcheck::check_type_wf
        25: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::check_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
        26: <rustc_query_impl::query_impl::check_type_wf::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, ())>>::call_once
        27: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
        28: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
        29: rustc_query_impl::query_impl::check_type_wf::get_query_non_incr::__rust_end_short_backtrace
        30: <rustc_session::session::Session>::time::<(), rustc_hir_analysis::check_crate::{closure#0}>
        31: rustc_hir_analysis::check_crate
        32: rustc_interface::passes::analysis
        33: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 0]>>
        34: <rustc_query_impl::query_impl::analysis::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, ())>>::call_once
        35: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 0]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 0]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 0]>>
        36: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 0]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
        37: rustc_query_impl::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
        38: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
        39: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
        40: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
        41: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
        42: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
        43: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
        44: rustc_span::create_session_globals_then::<(), rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
        45: std::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
        46: <<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
        47: std::sys::thread::unix::Thread::new::thread_start
        48: <unknown>
        49: <unknown>
      
  --> /checkout/tests/ui/higher-ranked/trait-bounds/issue-100689.rs:21:5
   |
LL | /     fn uwu(
LL | |         foo: Foo<'a>,
LL | |         mut f: impl for<'b> FnMut(&'b Foo<'a>), //relevant part
LL | |     ) {
   | |_____^

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: please make sure that you have updated to the latest nightly

note: rustc 1.93.0-nightly (1261b37b1 2025-11-16) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C codegen-units=1 -Z ui-testing -Z deduplicate-diagnostics=no -Z write-long-types-to-disk=no -C strip=debuginfo -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
end of query stack
------------------------------------------

---- [ui] tests/ui/higher-ranked/trait-bounds/issue-100689.rs stdout end ----
---- [ui] tests/ui/higher-ranked/trait-bounds/issue-102899.rs stdout ----

error: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/higher-ranked/trait-bounds/issue-102899.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/higher-ranked/trait-bounds/issue-102899" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
note: no errors encountered even though delayed bugs were created

note: those delayed bugs will now be shown as internal compiler errors

##[error]error: internal compiler error: failed region resolution while normalizing ParamEnv { caller_bounds: [Binder { value: ProjectionPredicate(AliasTerm { args: [F/#1, (Alias(Projection, AliasTy { args: [SomeBuffer<'buffer/#0>, 'buffer/#0, '^0.Named(DefId(0:9 ~ issue_102899[88dd]::BufferTrait::for_each_subset::'channel))], def_id: DefId(0:5 ~ issue_102899[88dd]::BufferTrait::Subset), .. }),)], def_id: DefId(2:4162 ~ core[5af9]::ops::function::FnOnce::Output), .. }, Term::Ty(())), bound_vars: [Region(BrNamed(DefId(0:9 ~ issue_102899[88dd]::BufferTrait::for_each_subset::'channel)))] }, Binder { value: TraitPredicate(<F as std::ops::Fn<(<SomeBuffer<'buffer> as BufferTrait<'buffer>>::Subset<'channel>,)>>, polarity:Positive), bound_vars: [Region(BrNamed(DefId(0:9 ~ issue_102899[88dd]::BufferTrait::for_each_subset::'channel)))] }, Binder { value: TraitPredicate(<F as std::ops::FnMut<(<SomeBuffer<'buffer> as BufferTrait<'buffer>>::Subset<'channel>,)>>, polarity:Positive), bound_vars: [Region(BrNamed(DefId(0:9 ~ issue_102899[88dd]::BufferTrait::for_each_subset::'channel)))] }, Binder { value: TraitPredicate(<F as std::ops::FnOnce<(<SomeBuffer<'buffer> as BufferTrait<'buffer>>::Subset<'channel>,)>>, polarity:Positive), bound_vars: [Region(BrNamed(DefId(0:9 ~ issue_102899[88dd]::BufferTrait::for_each_subset::'channel)))] }, Binder { value: TraitPredicate(<F as std::marker::MetaSized>, polarity:Positive), bound_vars: [Region(BrNamed(DefId(0:9 ~ issue_102899[88dd]::BufferTrait::for_each_subset::'channel)))] }, Binder { value: TraitPredicate(<F as std::marker::Sized>, polarity:Positive), bound_vars: [] }] }: [ConcreteFailure(RelateRegionParamBound(/checkout/tests/ui/higher-ranked/trait-bounds/issue-102899.rs:20:5: 22:45 (#0), None), '!1_0.Named(DefId(0:9 ~ issue_102899[88dd]::BufferTrait::for_each_subset::'channel)), 'buffer/#0), ConcreteFailure(RelateRegionParamBound(/checkout/tests/ui/higher-ranked/trait-bounds/issue-102899.rs:20:5: 22:45 (#0), None), '!2_0.Named(DefId(0:9 ~ issue_102899[88dd]::BufferTrait::for_each_subset::'channel)), 'buffer/#0), ConcreteFailure(RelateRegionParamBound(/checkout/tests/ui/higher-ranked/trait-bounds/issue-102899.rs:20:5: 22:45 (#0), None), '!3_0.Named(DefId(0:9 ~ issue_102899[88dd]::BufferTrait::for_each_subset::'channel)), 'buffer/#0), ConcreteFailure(RelateRegionParamBound(/checkout/tests/ui/higher-ranked/trait-bounds/issue-102899.rs:20:5: 22:45 (#0), None), '!4_0.Named(DefId(0:9 ~ issue_102899[88dd]::BufferTrait::for_each_subset::'channel)), 'buffer/#0)]
  --> /checkout/tests/ui/higher-ranked/trait-bounds/issue-102899.rs:20:5
   |
LL | /     fn for_each_subset<F>(&self, _f: F)
LL | |     where
LL | |         F: for<'subset> Fn(Subset<'subset>),
   | |____________________________________________^
   |
note: delayed at compiler/rustc_trait_selection/src/traits/mod.rs:345:23
         0: std::backtrace::Backtrace::create
         1: <rustc_errors::DiagCtxtInner>::emit_diagnostic
         2: <rustc_errors::DiagCtxtHandle>::emit_diagnostic
         3: <rustc_errors::diagnostic::Diag>::emit_producing_error_guaranteed
         4: rustc_trait_selection::traits::do_normalize_predicates
         5: rustc_trait_selection::traits::normalize_param_env_or_error
         6: rustc_hir_analysis::check::compare_impl_item::compare_method_predicate_entailment
         7: rustc_hir_analysis::check::compare_impl_item::compare_impl_item
         8: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::compare_impl_item::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
         9: <rustc_query_impl::query_impl::compare_impl_item::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
        10: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, true, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
        11: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
        12: rustc_query_impl::query_impl::compare_impl_item::get_query_non_incr::__rust_end_short_backtrace
        13: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
        14: rustc_hir_analysis::check::check::check_impl_items_against_trait
        15: rustc_hir_analysis::check::check::check_item_type
        16: rustc_hir_analysis::check::wfcheck::check_well_formed
        17: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
        18: <rustc_query_impl::query_impl::check_well_formed::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
        19: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, true, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
        20: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
        21: rustc_query_impl::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
        22: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
        23: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#0}>::{closure#0}>
        24: rustc_hir_analysis::check::wfcheck::check_type_wf
        25: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::check_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
        26: <rustc_query_impl::query_impl::check_type_wf::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, ())>>::call_once
        27: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
        28: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
        29: rustc_query_impl::query_impl::check_type_wf::get_query_non_incr::__rust_end_short_backtrace
        30: <rustc_session::session::Session>::time::<(), rustc_hir_analysis::check_crate::{closure#0}>
        31: rustc_hir_analysis::check_crate
        32: rustc_interface::passes::analysis
        33: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 0]>>
        34: <rustc_query_impl::query_impl::analysis::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, ())>>::call_once
        35: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 0]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 0]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 0]>>
        36: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 0]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
        37: rustc_query_impl::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
        38: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
        39: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
        40: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
        41: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
        42: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
        43: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
        44: rustc_span::create_session_globals_then::<(), rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
        45: std::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
        46: <<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
        47: std::sys::thread::unix::Thread::new::thread_start
        48: <unknown>
        49: <unknown>
      
  --> /checkout/tests/ui/higher-ranked/trait-bounds/issue-102899.rs:20:5
   |
LL | /     fn for_each_subset<F>(&self, _f: F)
LL | |     where
LL | |         F: for<'subset> Fn(Subset<'subset>),
   | |____________________________________________^

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: please make sure that you have updated to the latest nightly

note: rustc 1.93.0-nightly (1261b37b1 2025-11-16) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C codegen-units=1 -Z ui-testing -Z deduplicate-diagnostics=no -Z write-long-types-to-disk=no -C strip=debuginfo -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
end of query stack
------------------------------------------

---

25 LL |     type Ty: Valid;
26    |              ^^^^^ required by this bound in `Iterate::Ty`
27 
+ error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }, next=None
+   --> $DIR/fuzzing-ice-134905.rs:17:1
+    |
+ LL | impl<'a, T> Eq for T where <T as Iterate<'a>>::Ty: Valid {}
+    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }, next=None
+   --> $DIR/fuzzing-ice-134905.rs:17:1
+    |
+ LL | impl<'a, T> Eq for T where <T as Iterate<'a>>::Ty: Valid {}
+    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
28 error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct<T>`)
29   --> $DIR/fuzzing-ice-134905.rs:17:10
30    |

34    = note: implementing a foreign trait is only possible if at least one of the types for which it is implemented is local
35    = note: only traits defined in the current crate can be implemented for a type parameter
---

Note: some mismatched output was normalized before being compared
-   --> /checkout/tests/ui/specialization/fuzzed/fuzzing-ice-134905.rs:17:1
-   --> /checkout/tests/ui/specialization/fuzzed/fuzzing-ice-134905.rs:17:1
+ error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }, next=None
+   --> $DIR/fuzzing-ice-134905.rs:17:1
+    |
+ LL | impl<'a, T> Eq for T where <T as Iterate<'a>>::Ty: Valid {}
+    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }, next=None
+   --> $DIR/fuzzing-ice-134905.rs:17:1
+    |
+ LL | impl<'a, T> Eq for T where <T as Iterate<'a>>::Ty: Valid {}
+    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error: aborting due to 4 previous errors; 1 warning emitted


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args specialization/fuzzed/fuzzing-ice-134905.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/specialization/fuzzed/fuzzing-ice-134905.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/specialization/fuzzed/fuzzing-ice-134905" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
##[warning]  --> /checkout/tests/ui/specialization/fuzzed/fuzzing-ice-134905.rs:3:12
   |
---
   |
LL |     type Ty: Valid;
   |              ^^^^^ required by this bound in `Iterate::Ty`

error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }, next=None
##[error]  --> /checkout/tests/ui/specialization/fuzzed/fuzzing-ice-134905.rs:17:1
   |
LL | impl<'a, T> Eq for T where <T as Iterate<'a>>::Ty: Valid {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }, next=None
##[error]  --> /checkout/tests/ui/specialization/fuzzed/fuzzing-ice-134905.rs:17:1
   |
LL | impl<'a, T> Eq for T where <T as Iterate<'a>>::Ty: Valid {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct<T>`)
##[error]  --> /checkout/tests/ui/specialization/fuzzed/fuzzing-ice-134905.rs:17:10
   |
LL | impl<'a, T> Eq for T where <T as Iterate<'a>>::Ty: Valid {}
   |          ^ type parameter `T` must be used as the type parameter for some local type
   |
   = note: implementing a foreign trait is only possible if at least one of the types for which it is implemented is local
   = note: only traits defined in the current crate can be implemented for a type parameter

error: aborting due to 4 previous errors; 1 warning emitted
---
---- [ui] tests/ui/specialization/issue-38091-2.rs stdout ----

error: `build-fail` test is required to pass check build, but check build failed
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/specialization/issue-38091-2.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/specialization/issue-38091-2" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
##[warning]  --> /checkout/tests/ui/specialization/issue-38091-2.rs:4:12
   |
LL | #![feature(specialization)]
   |            ^^^^^^^^^^^^^^
   |
   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
   = help: consider using `min_specialization` instead, which is more stable and complete
   = note: `#[warn(incomplete_features)]` on by default

error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }, next=None
##[error]  --> /checkout/tests/ui/specialization/issue-38091-2.rs:20:1
   |
LL | impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }, next=None
##[error]  --> /checkout/tests/ui/specialization/issue-38091-2.rs:20:1
   |
LL | impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 2 previous errors; 1 warning emitted
------------------------------------------

---
25 LL |     type Ty: Valid;
26    |              ^^^^^ required by this bound in `Iterate::Ty`
27 
- error: aborting due to 1 previous error; 1 warning emitted
+ error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }, next=None
+   --> $DIR/issue-38091.rs:18:1
+    |
+ LL | impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
+    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }, next=None
+   --> $DIR/issue-38091.rs:18:1
+    |
+ LL | impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
+    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error: aborting due to 3 previous errors; 1 warning emitted
29 
30 For more information about this error, try `rustc --explain E0277`.
31 

Note: some mismatched output was normalized before being compared
-   --> /checkout/tests/ui/specialization/issue-38091.rs:18:1
-   --> /checkout/tests/ui/specialization/issue-38091.rs:18:1
+ error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }, next=None
+   --> $DIR/issue-38091.rs:18:1
+    |
+ LL | impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
+    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }, next=None
+   --> $DIR/issue-38091.rs:18:1
+    |
+ LL | impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
+    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error: aborting due to 3 previous errors; 1 warning emitted


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args specialization/issue-38091.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/specialization/issue-38091.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/specialization/issue-38091" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
##[warning]  --> /checkout/tests/ui/specialization/issue-38091.rs:1:12
   |
---
   |
LL |     type Ty: Valid;
   |              ^^^^^ required by this bound in `Iterate::Ty`

error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as Valid>, polarity:Positive), bound_vars: [] }, next=None
##[error]  --> /checkout/tests/ui/specialization/issue-38091.rs:18:1
   |
LL | impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: inconsistency during normalizing env `Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }`, old=Binder { value: TraitPredicate(<<T as Iterate<'a>>::Ty as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }, next=None
##[error]  --> /checkout/tests/ui/specialization/issue-38091.rs:18:1
   |
LL | impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 3 previous errors; 1 warning emitted

For more information about this error, try `rustc --explain E0277`.
------------------------------------------

---- [ui] tests/ui/specialization/issue-38091.rs stdout end ----
---- [ui] tests/ui/type-alias-impl-trait/in-assoc-ty-early-bound2.rs stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/type-alias-impl-trait/in-assoc-ty-early-bound2/in-assoc-ty-early-bound2.stderr`
diff of stderr:

+ error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }, next=Some(
+            Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: ['a/#0, 'a/#0], def_id: DefId(0:11 ~ in_assoc_ty_early_bound2[a84a]::{impl#0}::Assoc::{opaque#0}), .. }))), bound_vars: [] },
+        )
+   --> $DIR/in-assoc-ty-early-bound2.rs:10:5
+    |
+ LL | /     fn bar<'a: 'a>()
+ LL | |     where
+ LL | |         Self::Assoc<'a>:,
+    | |_________________________^
+ 
+ error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }, next=Some(
+            Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: ['a/#0, 'a/#0], def_id: DefId(0:11 ~ in_assoc_ty_early_bound2[a84a]::{impl#0}::Assoc::{opaque#0}), .. }))), bound_vars: [] },
+        )
+   --> $DIR/in-assoc-ty-early-bound2.rs:14:17
+    |
+ LL |         let _ = |x: &'a ()| {
+    |                 ^^^^^^^^^^^
+ 
1 error[E0792]: expected generic lifetime parameter, found `'_`
2   --> $DIR/in-assoc-ty-early-bound2.rs:15:20
3    |
---

Note: some mismatched output was normalized before being compared
-   --> /checkout/tests/ui/type-alias-impl-trait/in-assoc-ty-early-bound2.rs:10:5
-   --> /checkout/tests/ui/type-alias-impl-trait/in-assoc-ty-early-bound2.rs:14:17
+ error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }, next=Some(
+            Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: ['a/#0, 'a/#0], def_id: DefId(0:11 ~ in_assoc_ty_early_bound2[a84a]::{impl#0}::Assoc::{opaque#0}), .. }))), bound_vars: [] },
+        )
+   --> $DIR/in-assoc-ty-early-bound2.rs:10:5
+    |
+ LL | /     fn bar<'a: 'a>()
+ LL | |     where
+ LL | |         Self::Assoc<'a>:,
+    | |_________________________^
+ 
+ error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }, next=Some(
+            Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: ['a/#0, 'a/#0], def_id: DefId(0:11 ~ in_assoc_ty_early_bound2[a84a]::{impl#0}::Assoc::{opaque#0}), .. }))), bound_vars: [] },
+        )
+   --> $DIR/in-assoc-ty-early-bound2.rs:14:17
+    |
+ LL |         let _ = |x: &'a ()| {
+    |                 ^^^^^^^^^^^
+ 
+ error: aborting due to 3 previous errors


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args type-alias-impl-trait/in-assoc-ty-early-bound2.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/type-alias-impl-trait/in-assoc-ty-early-bound2.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/type-alias-impl-trait/in-assoc-ty-early-bound2" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }, next=Some(
           Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: ['a/#0, 'a/#0], def_id: DefId(0:11 ~ in_assoc_ty_early_bound2[a84a]::{impl#0}::Assoc::{opaque#0}), .. }))), bound_vars: [] },
       )
  --> /checkout/tests/ui/type-alias-impl-trait/in-assoc-ty-early-bound2.rs:10:5
   |
LL | /     fn bar<'a: 'a>()
LL | |     where
LL | |         Self::Assoc<'a>:,
   | |_________________________^

error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [(), 'a/#0], def_id: DefId(0:4 ~ in_assoc_ty_early_bound2[a84a]::Foo::Assoc), .. }))), bound_vars: [] }, next=Some(
           Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: ['a/#0, 'a/#0], def_id: DefId(0:11 ~ in_assoc_ty_early_bound2[a84a]::{impl#0}::Assoc::{opaque#0}), .. }))), bound_vars: [] },
       )
  --> /checkout/tests/ui/type-alias-impl-trait/in-assoc-ty-early-bound2.rs:14:17
   |
LL |         let _ = |x: &'a ()| {
   |                 ^^^^^^^^^^^

error[E0792]: expected generic lifetime parameter, found `'_`
##[error]  --> /checkout/tests/ui/type-alias-impl-trait/in-assoc-ty-early-bound2.rs:15:20
   |
---
---- [ui] tests/ui/type-alias-impl-trait/struct-assignment-validity.rs stdout ----

error: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/type-alias-impl-trait/struct-assignment-validity.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/type-alias-impl-trait/struct-assignment-validity" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Zvalidate-mir"
stdout: none
--- stderr -------------------------------
error: inconsistency during normalizing env `Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [Bar], def_id: DefId(0:6 ~ struct_assignment_validity[f0b5]::Trait::Assoc), .. }))), bound_vars: [] }`, old=Binder { value: WellFormed(Term::Ty(Alias(Projection, AliasTy { args: [Bar], def_id: DefId(0:6 ~ struct_assignment_validity[f0b5]::Trait::Assoc), .. }))), bound_vars: [] }, next=Some(
           Binder { value: WellFormed(Term::Ty(Alias(Opaque, AliasTy { args: [], def_id: DefId(0:10 ~ struct_assignment_validity[f0b5]::{impl#0}::Assoc::{opaque#0}), .. }))), bound_vars: [] },
       )
  --> /checkout/tests/ui/type-alias-impl-trait/struct-assignment-validity.rs:18:5
   |
LL | /     fn foo() -> Foo
LL | |     where

@adwinwhite
Copy link
Contributor Author

@rustbot author

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 16, 2025
@rustbot
Copy link
Collaborator

rustbot commented Nov 16, 2025

Reminder, once the PR becomes ready for a review, use @rustbot ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants